A binary protocol is a protocol which is intended or expected to be read by a machine rather than a human being, as opposed to a plain text protocol such as IRC, SMTP, or HTTP. Binary protocols have the advantage of terseness, which translates into speed of transmission and interpretation.
There has always been tension between two software development camps that believe new protocols should preferably be text based or binary, respectively. In recent years, with the ready availability of network bandwidth and mass storage, the text based camp has been gaining significant ground - XML-based systems are nearly ubiquitous - but the debate continues[1].
Binary protocol is also used in the context of a protocol between exactly two parties, in contrast to a multi-party protocol. Binary protocol, or binary collaboration have been used in the terminology of standards such as EbXML and EDOC [2]. An interface in the UML [3] may also be considered a binary protocol.